home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MACD 5
/
MACD 5.bin
/
workbench
/
libs
/
maestixlib.lha
/
Maestix
/
include
/
libraries
/
maestix.h
next >
Wrap
C/C++ Source or Header
|
1995-06-26
|
7KB
|
207 lines
/*
** Maestix Library References - V38
**
** © 1995 Richard Körber
*/
#ifndef LIBRARIES_MAESTIX_H
#define LIBRARIES_MAESTIX_H (1)
#ifndef EXEC_TYPES_H
#include 'exec/types.h'
#endif
#ifndef UTILITY_TAGITEM_H
#include 'utility/tagitem.h'
#endif
#ifndef EXEC_PORTS_H
#include 'exec/ports.h'
#endif
#ifndef EXEC_LISTS_H
#include 'exec/lists.h'
#endif
#ifndef EXEC_LIBRARIES_H
#include 'exec/libraries.h'
#endif
/* ------------------------------------------------------------------------ */
/* Generic library informations */
#define MAESTIXVERSION (39)
struct MaestixBase {
struct Library mxb_LibNode;
};
/* ------------------------------------------------------------------------ */
/* MaestroBase structure */
struct MaestroBase {
WORD maba_Dummy; /* PRIVATE */
};
/* ------------------------------------------------------------------------ */
/* DataMessage */
struct DataMessage {
struct Message dmn_Message; /* struct Message */
APTR dmn_BufPtr; /* pointer to public buffer memory */
ULONG dmn_BufLen; /* length of buffer memory (bytes) */
};
/* ------------------------------------------------------------------------ */
/* Tag definitions */
#define _MSTXTAG (0xCD414553) /* Maestix tag base ("MAES") */
/* SetMaestro() tags */
#define MTAG_Input (_MSTXTAG+0x00) /* Input? Def. INPUT_STD */
#define MTAG_Output (_MSTXTAG+0x01) /* Output? Def. OUTPUT_BYPASS */
#define MTAG_SetCSB (_MSTXTAG+0x02) /* Direct CSB access */
#define MTAG_SetUDB (_MSTXTAG+0x03) /* Direct UDB access */
#define MTAG_Studio (_MSTXTAG+0x04) /* Studio mode? (TRUE/FALSE) */
#define MTAG_CopyProh (_MSTXTAG+0x05) /* Copy protection? */
#define MTAG_Emphasis (_MSTXTAG+0x06) /* Emphasis */
#define MTAG_Source (_MSTXTAG+0x07) /* Source category code */
#define MTAG_Rate (_MSTXTAG+0x08) /* Output rate */
#define MTAG_Validity (_MSTXTAG+0x09) /* Validity flag (TRUE/FALSE) */
#define MTAG_ResetUDB (_MSTXTAG+0x0A) /* Reset UDB */
#define MTAG_ResetLSA (_MSTXTAG+0x0C) /* Reset Local Sample Address */
/* StartRealtime() tags */
#define MTAG_Effect (_MSTXTAG+0x0D) /* effect number (see below) */
#define MTAG_A0 (_MSTXTAG+0x0E) /* parameter -> A0 */
#define MTAG_A1 (_MSTXTAG+0x0F) /* parameter -> A1 */
#define MTAG_D2 (_MSTXTAG+0x10) /* parameter -> D2 */
#define MTAG_D3 (_MSTXTAG+0x11) /* parameter -> D3 */
#define MTAG_CustomCall (_MSTXTAG+0x12) /* pointer to custom call */
/* ------------------------------------------------------------------------ */
/* Tag values for MTAG_Input */
#define INPUT_STD (0) /* User selected input */
#define INPUT_OPTICAL (1) /* optical input */
#define INPUT_COAXIAL (2) /* coaxial input */
#define INPUT_SRC48K (3) /* 48kHz internal source */
/* ------------------------------------------------------------------------ */
/* Tag values for MTAG_Output */
#define OUTPUT_BYPASS (0) /* Bypass */
#define OUTPUT_INPUT (1) /* from input */
#define OUTPUT_FIFO (2) /* from FIFO */
/* ------------------------------------------------------------------------ */
/* Tag values for MTAG_CopyProh */
#define CPROH_OFF (0) /* No protection requested */
#define CPROH_ON (1) /* Copy protection requested */
#define CPROH_PROHIBIT (2) /* Copy prohibited */
#define CPROH_INPUT (3) /* As input */
/* ------------------------------------------------------------------------ */
/* Tag values for MTAG_Emphasis */
#define EMPH_OFF (0) /* no emphasis */
#define EMPH_50us (1) /* 50/15µs */
#define EMPH_CCITT (2) /* CCITT J.17 (studio only) */
#define EMPH_MANUAL (3) /* Manuell (studio only) */
#define EMPH_INPUT (4) /* As input */
#define EMPH_ON (EMPH_50us)
/* ------------------------------------------------------------------------ */
/* Tag values for MTAG_Source */
#define SRC_INPUT (0) /* As input */
#define SRC_CD (0x01) /* CD */
#define SRC_DAT (0x03) /* DAT */
#define SRC_DSR (0x0C) /* DSR */
#define SRC_ADCONV (0x06) /* ADC */
#define SRC_INSTR (0x05) /* Instrument */
/* ------------------------------------------------------------------------ */
/* Tag values for MTAG_Rate */
#define RATE_32000 (0) /* Rate 32000 Hz */
#define RATE_44100 (1) /* Rate 44100 Hz */
#define RATE_48000 (2) /* Rate 48000 Hz */
#define RATE_48000MANU (3) /* Rate 48000 Hz Manual */
#define RATE_INPUT (4) /* As input */
/* ------------------------------------------------------------------------ */
/* Realtime FX codes */
#define RFX_Muting (0) /* mute incoming signal */
#define RFX_Bypass (1) /* no manipulation (default) */
#define RFX_ChannelSwap (2) /* swap left and right */
#define RFX_LeftOnly (3) /* mute right channel */
#define RFX_RightOnly (4) /* mute left channel */
#define RFX_Mono (5) /* mono */
#define RFX_Surround (6) /* surround */
#define RFX_Volume (7) /* volume */
/* MTAG_D2: left volume (0..256) */
/* MTAG_D3: right volume (0..256) */
#define RFX_Karaoke (8) /* filters out the singer */
#define RFX_Foregnd (9) /* filters out the surround info */
#define RFX_Spatial (10) /* virtual shifting of the speakers */
/* MTAG_D2: shift factor (0..256) */
/* optimum: about 64 */
#define RFX_Echo (11) /* echo effect */
/* MTAG_D2: entry volume (0..256) */
/* MTAG_D3: decay volume (0..256) */
/* MTAG_A0: pointer to MRTorus structure */
#define RFX_Mask (12) /* mask/quantisize */
/* MTAG_D2: left mask word */
/* MTAG_D3: right mask word */
#define RFX_Offset (13)
/* MTAG_D2: left offset (32767..-32768) */
/* MTAG_D3: right offset (32767..-32768) */
/* ------------------------------------------------------------------------ */
/* Torus structure for RFX_Echo */
struct MRTorus {
APTR mrtor_PointerL; /* Pointer to left data buffer */
APTR mrtor_PointerR; /* Pointer to right data buffer */
ULONG mrtor_Size; /* Size of these buffers (bytes) */
ULONG mrtor_Offset; /* current offset (init with NULL) */
};
/* ------------------------------------------------------------------------ */
/* GetStatus() values */
#define MSTAT_TFIFO (0) /* Transmit FIFO Status (s.b.) */
#define MSTAT_RFIFO (1) /* Receive FIFO Status (s.b.) */
#define MSTAT_Signal (2) /* Signal on input? (BOOL) */
#define MSTAT_Emphasis (3) /* Signal uses emphasis? (BOOL) */
#define MSTAT_DATsrc (4) /* DAT-Source? (BOOL) */
#define MSTAT_CopyProh (5) /* Copy protection? (BOOL) */
#define MSTAT_Rate (6) /* Rate (ULONG) */
#define MSTAT_UDB (7) /* get current UDB (UBYTE) */
/* Values for TFIFO & RFIFO */
#define FIFO_Off (0) /* FIFO ist aus */
#define FIFO_Running (1) /* FIFO läuft */
#define FIFO_Error (2) /* FIFO lief über */
#endif